This specification relates to automatic digital data processing, and more particularly to the uniqueness of identifiers, including, e.g., identifiers for the identification of data-bearing digital objects.
Objects are a central level of abstraction for software applications implemented on an object-oriented paradigm. Objects may be of differing granularity, i.e., with or without components.
In this specification, the term “object identifier” refers to a data or metadata construct that identifies an object instance. An object instance is a particular data-bearing instance of an object type. A particular purchase order object, for example, can be an instance of a purchase order object type. In this specification, the terms “object” and “object instance” are used broadly to refer to any data-bearing, addressable resource; the meaning is not limited to the object-oriented programming senses of the terms. In addition, the meaning is not limited to objects that are generated or used by the conventional kinds of software applications; any kind of system component can generate an object that can have an object identifier.
In business and other applications, it is important to be able to identify objects unambiguously so that, for example, two different businesses' systems can understand and recognize each others' identifiers for their respective objects. It is also important that the identifiers be unambiguous, i.e., unique.
An identifier (“ID”) is a unique identification of an instance of an object. The uniqueness of an identifier is always given with respect to an identification context.
The identification context always refers to an ID as a whole. An ID value is indivisible (i.e., the ID consists of only one field); that is, parts of an ID value do not identify the object.
In rare cases it may be that time is part of the context of an ID. In such a case, time information has to be used to realize the uniqueness and stability of an ID value. To accomplish this, the context definition of such an ID can include an element that represents time.
In the UN/CEFACT (United Nations Center for Trade Facilitation and Electronic Business) Core Component Technical Specification (CCTS), the identification context of an identifier is defined by what are called supplementary components of the identifier. The supplementary components may also be referred to as the attributes of an object ID. The pivotal supplementary component is the “identification scheme”. Identifier values are unique with respect to such a scheme.
Supplementary components are always defined at design time for the object's object type. The values of these attributes are filled at configuration time or runtime.
The CCTS defines an identification context that is structured in layers. Each layer is unique only with respect to the next higher layer.
The innermost (lowest) layer is defined by an identification scheme with its schemeID. The scheme represents the identification context (with respect to the outer layers) in which the ID of an object is unique.
For an identifier, one or more identification contexts may exist. Each identification context is represented by a scheme (and thus, a schemeID). The identification scheme is defined at configuration time and interpreted at runtime.
The identification scheme can be versioned, that is, an identification scheme is unique in the context of a version. This is the middle layer, where a schemeVersionID identifies the version of the identification scheme.
The next layer is provided by the agency that issues and administrates the identification scheme and its versions. It is advantageous if this agency can be identified by a code value from a global, i.e., internationally standardized, code list, e.g., the UN/EDIFACT DE (data element) 3055 code list. This is the outermost layer of the identification context.
Thus, in the innermost layer, a schemeID identifies an identification scheme. The scheme represents the identification context of an object ID. In the next layer, a schemeVersionID identifies the version of the identification scheme. And in the next layer, a schemeAgencyID identifies the agency that manages the identification scheme. By default, this is a value from the DE 3055 code list.
For the case of standardized IDs, the just-described scheme is sufficient. Often the scheme represents an “ID-value-issuing system”. An example of this is the ISBN number used to identify books, issued by ISO (the International Organization for Standardization).